home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The AGA Experience 2
/
agavol2.iso
/
software
/
utilities
/
emulation
/
zxam spectrum
/
zxam_rexx
/
español
/
savescreen.zxam
< prev
next >
Wrap
Text File
|
1995-07-31
|
4KB
|
119 lines
/* este script graba la pantalla del spectrum como IFF sin compresión */
address command
if ~show(ports,ZXAM_REXX) then do
requestchoice 'title "ZXAM Script error..." body "No encuentro el puerto del emulador!!" gadgets "AARGH!"'
exit 0
end
/* Almacenar el estado inicial del emulador */
running=zxamactrun() /* 1=en marcha */
zxamstop() /* lo paramos */
/* Usamos el requester del emulador para pedir nombre del fichero */
cajon="" /* aqui puedes meter el path que uses para pantallas */
oldcajon=zxamactloadpath() /* guardamos el path del requester */
oldpattern=zxamactpattern() /* guardamos el pattern del requester */
zxampattern('(#?.iff|#?.pic)') /* filtro para mostrar solo pantallas */
nombre=zxamsaverequester('Nombre para grabar el IFF...',cajon)
zxampattern(oldpattern) /* recuperamos el pattern */
zxamloadpath(oldcajon) /* recuperamos el path */
if nombre='' then do
exit /* selección cancelada */
end
/* Abrimos el fichero */
if ~OPEN('fichero',nombre,'Write') then exit 0
oldname=zxamactname() /* guardamos nombre y formato */
oldformat=zxamactformat()
zxamnameformat(' (GRABANDO PANTALLA IFF)','')
/* cabecera identificadora. indica tamaño TODO menos 'FORM' */
dummy=writech('fichero','FORM')
dummy=writech('fichero','000060a8'x) /* tamaño total */
dummy=writech('fichero','ILBM')
/* chunk ANNO */
dummy=writech('fichero','ANNO')
dummy=writech('fichero','00000033'x) /* tamaño 51 caracteres */
dummy=writech('fichero','Saved by ZXAM Spectrum Emulator AGA (by Toni Pomar)')
dummy=writech('fichero','00'x) /* pad para alinear */
/* chunk BMHD, o sea, bloque indicador de tamaño página */
dummy=writech('fichero','BMHD')
dummy=writech('fichero','00000014'x) /* tamaño 20 */
dummy=writech('fichero','0100'x) /* ancho */
dummy=writech('fichero','00c0'x) /* alto */
dummy=writech('fichero','0000'x) /* pos x */
dummy=writech('fichero','0000'x) /* pos y */
dummy=writech('fichero','04'x) /* nro bitplanos */
dummy=writech('fichero','00'x) /* masking */
dummy=writech('fichero','00'x) /* compression */
dummy=writech('fichero','00'x) /* Pad1 */
dummy=writech('fichero','0000'x) /* color transparente */
dummy=writech('fichero','2c2c'x) /* aspect 44:44 */
dummy=writech('fichero','0140'x) /* ancho página fuente (320) */
dummy=writech('fichero','0100'x) /* alto página fuente (256) */
/* chunk CAMG, o sea, modo de pantalla (PAL:Baja resolución) */
dummy=writech('fichero','CAMG')
dummy=writech('fichero','00000004'x) /* tamaño 4 */
dummy=writech('fichero','00000000'x) /* 00021000 = PAL:Baja resolución */
/* chunk CMAP, o sea, mapa de colores */
dummy=writech('fichero','CMAP')
dummy=writech('fichero','00000030'x) /* tamaño 48 (16 colores*3 bytes) */
/* color del borde */
/* El color (0 a 7) es el índice para la tabla de colores */
/* que creamos en forma de cadena MUY larga */
dummy=writech('fichero',x2c(substr('000000000099990000aa00aa00aa0000bbbbcccc00dddddd',(zxamgetreg(bor)*6)+1,6)))
dummy=writech('fichero','000099'x) /* color 1 */
dummy=writech('fichero','990000'x) /* color 2 */
dummy=writech('fichero','aa00aa'x) /* color 3 */
dummy=writech('fichero','00aa00'x) /* color 4 */
dummy=writech('fichero','00bbbb'x) /* color 5 */
dummy=writech('fichero','cccc00'x) /* color 6 */
dummy=writech('fichero','dddddd'x) /* color 7 */
dummy=writech('fichero','000000'x) /* color 8 */
dummy=writech('fichero','0000aa'x) /* color 9 */
dummy=writech('fichero','bb0000'x) /* color 10 */
dummy=writech('fichero','cc00cc'x) /* color 11 */
dummy=writech('fichero','00cc00'x) /* color 12 */
dummy=writech('fichero','00dddd'x) /* color 13 */
dummy=writech('fichero','eeee00'x) /* color 14 */
dummy=writech('fichero','ffffff'x) /* color 15 */
/* chunk BODY, o sea, bitplanos en formato entrelazado */
dummy=writech('fichero','BODY')
dummy=writech('fichero','00006000'x) /* tamaño 6144*4 (4 bpls de 256*192) */
/* usamos una funcion especial del emulador para sacar la pantalla en 4 bitplanos */
dummy=writech('fichero',zxamgetscr())
dummy=close('fichero')
if oldname='' then
zxamclearnameformat()
else
zxamnameformat(oldname,oldformat)
/* dejar el emulador como estaba */
if running=1 then zxamrun()
exit